home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
090
/
wwindow2.arc
/
INT10.ASM
next >
Wrap
Assembly Source File
|
1986-08-01
|
2KB
|
89 lines
PAGE 55,79
TITLE Copyright 1986 Nourse Gregg & Browne, Inc.
SUBTTL INT10 - Lattice C interface to PC Video BIOS
;
; Interface for:
;
; Lattice C
; to
; the IBM BIOS video interupt
;
;-----------------------------------------*
;
; Call from your Lattice C looks like:
;
;
; union REGS regs;
;
;
; int10(®s);
;
;
;------------------------------------------*
;
; This interface is for the Lattice Small ONLY
;
; the ES register is loaded with a copy of
; the DS register so you don't use SEGREGS.
;
;
;------------------------------------------*
;
PAGE
INCLUDE \LC3\SM8086.MAC
XREG STRUC
AX1 DW ?
BX1 DW ?
CX1 DW ?
DX1 DW ?
SI1 DW ?
DI1 DW ?
XREG ENDS
NAME INT10
SETX
PSEG
DB ' Copyright 1986, Nourse Gregg + Browne, Inc. '
BEGIN INT10
PUSH BP ;SAVE BP
MOV BP,SP ;ADDRESS THE STACK FRAME
PUSH ES ;SAVE ES
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MOV SI,[BP+X] ;INREGS STRUC POINTER
MOV AX,DS ;GET DATA SEG ADDRESS
MOV ES,AX ;PUT DS VALUE IN ES
MOV AX,[SI].AX1 ;LOAD AX FROM INREGS
MOV BX,[SI].BX1 ;LOAD BX FROM INREGS
MOV CX,[SI].CX1 ;LOAD CX FROM INREGS
MOV DX,[SI].DX1 ;LOAD DX FROM INREGS
MOV DI,[SI].DI1 ;LOAD DI FROM INREGS
MOV SI,[SI].SI1 ;LOAD SI FROM INREGS
PUSH BP ;SAVE BP
; CLI ;DISABLE INTERUPTS !?!?!?!?!?!
INT 10H ;INT TO BIOS VIDEO INTERUPT
; STI ;ENABLE INTERUPTS ....
POP BP ;RESTORE BP
PUSH SI ;SAVE SI
MOV SI,[BP+X] ;INREGS STRUC POINTER
MOV [SI].AX1,AX ;PUT AX IN INREGS
MOV [SI].BX1,BX ;PUT BX IN INREGS
MOV [SI].CX1,CX ;PUT CX IN INREGS
MOV [SI].DX1,DX ;PUT DX IN INREGS
MOV [SI].DI1,DI ;PUT DI IN INREGS
POP AX ;GET SI VALUE IN AX
MOV [SI].SI1,AX ;PUT SI IN INREGS
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
POP ES ;RESTORE ES
POP BP ;RESTORE BP
RET
INT10 ENDP
ENDPS
END INT10